[レポート] Snowflakeのアーキテクチャ #SnowflakeDB #SnowdayJapan
2023年02月14日(火)、ANAインターコンチネンタルホテル東京、ならびにオンライン配信のハイブリッド形式でSnowflakeのイベント「SNOWDAY JAPAN」が開催されました。
当エントリではその中で、ブレークアウトセッションとして開催された「Snowflakeのアーキテクチャ」のレポートをお届けします。
セッション概要
当エントリで扱うレポートのセッション概要は以下の通りです。
Snowflakeのアーキテクチャ
[登壇者]
・高山 博史(Snowflake株式会社)
[セッション概要]
Snowflakeの基本的なコンセプト(コンピューティングとストレージの分離)や、どうやって既存データ分析基盤の様々な課題を解決出来ているのか、アーキテクチャの説明をしながらご紹介します。
セッションレポート
はじめに
- 自己紹介
- IT業界23年目、クラウド業界は12年目、前職はAWS
- 本セッションでは「Snowflakeがなぜ課題貢献出来るのか」について、アーキテクチャの側面から話していく。
- 途中デモも交えていく。
- Snowflakeのミッション:「To Mobilize the World's Data」(世界のデータをモビライズ)
- Mobilize:人やモノを集める、結集する、の意。
- 点在するデータを垣根(部署、社内、企業)を越えて集めて価値を最大化させるイメージ。
- Snowflakeは後発ながら多くのお客様に御活用頂いている。7つの柱を設定し、それらを中心にイノベーションに取り組んでいる。
- すべてのデータ
- 単一エンジン
- ガバナンス
- グローバルな接続
- セルフマネージド
- プログラム可能
- マーケットプレイスと収益化
- プラットフォーム要件:1つのプラットフォームでお客様の重要な要件に対応
- どんなワークロードも迅速に処理
- 要求通りに機能
- 本当に重要なものに繋がる
- Snowflakeのアーキテクチャ
- ITインフラとしてはAWS、Google Cloud、Azureといったパブリッククラウドを利用
- Snowflakeを利用する際に「東京リージョンで動かす」などの指定が可能。
- Snowflakeの提供開始は2014年。ユーザーとして、パブリッククラウドの便利な機能を最大限活用している。所謂「巨人の肩に乗る」アプローチ
- Optimized Storage:ストレージレイヤー。AWSで言うS3のエリア。各クラウドのオブジェクトストレージを内部的に利用している。
- Elastic Performance Engine:コンピューティングリソースを使って実際に分析や計算処理を行うレイヤー。
- Intelligent Infrastructure:管理レイヤー。クラウドサービスレイヤー等とも呼ぶ。認証認可セキュリティ、キャッシュ管理等行う
- ITインフラとしてはAWS、Google Cloud、Azureといったパブリッククラウドを利用
Snowflakeのアーキテクチャ:クラウドネイティブなアーキテクチャ
- どんなワークロードも迅速に処理
- クラウドの特性を活かし、必要な時に必要なスペックで必要な分だけ、使った分だけ従量課金。この特徴を盛り込んだのがSnowflake。
- アーキテクチャ解説
- 真ん中にあるのがストレージレイヤー、データを溜める領域
- 図の左上(Structured & Semi Structured):基幹システムにある、分析したいデータ。これをデータロード機能で取り込む。ETL。
- 図の左下(Data Transformation):慣れ親しんだSQLで、Snowflake上でデータを加工することも可能。こちらはELT。
- 綺麗になったデータは色々な用途で利用可能。
- Finance app:金融部門用のコンピューティングリソースを使ってダッシュボードを参照
- Data Science:Pythonで機械学習
- Marketing Analytics/Reporting/BI:
- それぞれのコンピューティングリソースをそれぞれのキャパシティでそれぞれのタイミングで活用可能。
- スケールアクロス:各利用部門によるリソース競合の問題を解決し、ワークロードマネジメントが不要に
- スケールアップ:Lサイズ(のスペック)で2時間掛かる処理なら、2倍のXLサイズで1時間で済むように。掛かる金額は同じなので、重い処理であれば積極的に活用すべき
- スケールアウト:同時接続が多い場合、より多くのクエリを同時に実行するような場合に有効。水平方向のスケール。月曜午前に多くのメンバーがダッシュボードを観たい、というケースに効く。
- 上記の内容を説明するデモ:自動再開、自動一時停止の機能を合わせて使うことで、普段はウェアハウスを止めておき、必要なタイミングでのみ動かすといった運用も可能。(クエリを投げれば1秒も掛からずに開始し、そして一定時間アイドル状態の後、自動で止まる)
- 上記3つのスケーリングを活用することで、低コストと高パフォーマンスの両方を実現している。
- お客様の声
- 巨大なだけのインフラから柔軟なインフラに変更したことで無限の柔軟性を獲得出来た
- サイロ化されていたデータを一箇所に集め、負荷やスペックに応じて柔軟にリソースを変更して対応出来た
Snowflakeのアーキテクチャ:ニアゼロメンテナンス
- 要求通りに機能:大規模運用、コスト最適化、ダウンタイム最小化を手動作業なしに完全自動化
- Snowflakeはメンテナンスのコストがほぼ掛からない
- マイクロパーティション:データの保存の仕方を工夫し、比較的小さなサイズにてデータを分割管理。データI/O、集計分析性能を向上させている
- ゼロコピークローン:開発検証用に大きなテーブルデータが必要となった場合、従来であれば時間を掛けて別途用意していたものを、Snowflake内部でうまくメタデータを使って物理的なコピーを取らずに 同様の環境を用意出来る。
- タイムトラベル:運用開始後などに非常に役立ったという声を多く頂く機能。変更履歴(差分)をすべて追記で保存しており、最大90日間であれば任意のタイミングでクエリを実行可能。
Snowflakeのアーキテクチャ:データコラボレーション
- 本当に重要なものにつながる:チーム、ワークロード、クラウド、データへのアクセスとコラボレーションをシームレスかつ安全に拡張
- Snowflakeユーザーから『Snowflakeが分析基盤として優秀なことはわかった。ビジネス的に貢献出来る、もっと分析に使えるデータが欲しい』という声が多く挙がった事に対応
- プライバシー保護型データコラボレーション:使う権限を付けてあげるイメージ。共有されたユーザーは共有先のデータに対してクエリが実行出来るようになる。SELECT文を打って結果だけもらうイメージ
- Snowflakeのコラボレーション | Snowflakeワークロード
- Snowflake コラボレーション — Snowflake Documentation
- ちなみにコラボレーション機能を使った場合でも、スケールアクロス機能によりデータ共有元のパフォーマンスには影響は無い。
- MarketPlace:
最後に
- 技術的には、世界のデータをモビライズする準備・土台はは出来ている。是非御社のデータの価値を最大化・ビジネス貢献にSnowflakeを活用して頂きたい。
まとめ
という訳で、SNOWDAYブレークアウトセッション「Snowflakeのアーキテクチャ」の参加(視聴)レポートの紹介でした。
Snowflakeの大枠を掴むセッションとしてとても分り易かったですし、当セッションで紹介された機能群もそれぞれとても便利そうな印象を持ちました。時間を見付けて実践してみたいと思います。